Automated Content Medium Selection

ABSTRACT

A content management system and/or client device can enable a user to initiate a quick play mode where a content category and content medium are selected for the user. A client device and/or a content management system can select a content medium for a user based on one or more factors, such as the content category. Certain content categories of content can be preferably delivered in certain content mediums. In some embodiments, a content management system and/or client device can select a content medium for a user based on contextual data gathered from the user. Contextual data can be data describing the user&#39;s current state and/or environment. For example, contextual data can include data such as the time of day, geographic location, etc.

CROSS REFERENCE TO RELATED APPLICATIONS

This application is a continuation of U.S. application Ser. No.14/869,635 titled “AUTOMATED CONTENT MEDIUM SELECTION” filed on Sep. 29,2015, which claims the benefit of U.S. provisional application No.62/171,975 titled “AUTOMATED CONTENT MEDIUM SELECTION” filed on Jun. 5,2015, which is hereby expressly incorporated by reference in itsentirety

TECHNICAL FIELD

The present technology pertains to content item selection and morespecifically pertains to selecting a medium for the selected contentitems.

BACKGROUND

With the advent of digital content players and other types of mobilecomputing devices, people are accumulating vast libraries of digitalcontent. In many cases, personal content libraries include songs,movies, podcasts, etc., added from physical media such as CD, SACD, andDVD as well as content downloaded from online content retailers.

While mobile computing devices allow users to enjoy their contentvirtually anywhere, growing content libraries are becoming more and moredifficult to effectively manage. For example, handcrafting a playlisttypically involves the tedious process of searching through a largecontent library to find appropriate content items, selecting the contentitems, selecting an order for the content items and hoping that nodesirable content items are overlooked. Some current technologies willautomate this process and generate and play a playlist for a user,however these generated playlists are often selected based on verylittle input of the user and often select songs at random for a user.

SUMMARY

Additional features and advantages of the disclosure will be set forthin the description which follows, and in part will be obvious from thedescription, or can be learned by practice of the herein disclosedprinciples. The features and advantages of the disclosure can berealized and obtained by means of the instruments and combinationsparticularly pointed out in the appended claims. These and otherfeatures of the disclosure will become more fully apparent from thefollowing description and appended claims, or can be learned by thepractice of the principles set forth herein.

Disclosed are systems, methods, and non-transitory computer-readablestorage media for selecting a content medium in which to deliver contentto a user. Content can be delivered in multiple content mediums. Examplecontent mediums can include, podcast, album, user selected playlist,computer generated playlist, online radio station, editorial playlist,playlists from external curators, etc.

A client device and/or a content management system can select a contentmedium for a user based on one or more factors, criteria, etc. Forexample, a client device and/or content management system can select acontent medium based on a content category that is to be delivered tothe user. A content category can be any type of categorization of thecontent, such as categorization based on content type, style, artists,era, genre, etc. or a combination thereof. Certain content categoriescan be preferably delivered in certain content mediums. As an example, acontent category such as news may be preferably delivered as a podcast.As another example, a content category such as audio books may bepreferably delivered as an entire album, a playlist of audio chapters orother appropriate medium. As another example, a content category such as80's hits may be preferably delivered as a playlist or online radiostation.

In some embodiments, a content management system and/or client devicecan select a content medium for a user based on contextual data gatheredfrom the user. Contextual data can be data describing the user currentstate and/or environment. For example, contextual data can include datasuch as the time of day, geographic location, user activity, biometricinformation gathered from the user, etc.

Additionally, a content management system and/or client device canselect a content medium for a user based on user preference data andcontent use data associated with the user and/or a group of users. Userpreference data can be data indicating the users likes and dislikesassociated with content, such as user provided preference data orderived preference data. Content use data can be data gathered fromand/or describing user interaction with content. For example, contentuse data can identify the content medium selected by a user to deliver aspecified content category, as well identify any contextual data such astime of day, geographic location, etc. when the user selected thecontent medium. The content player can analyze the historical contentdata to select a content medium for a user based on a specified contentcategory, as well as contextual data describing the current state and/orenvironment of the user.

In some embodiments, the client device and/or content management systemcan enable a user to select a “quick play” option to initiate playbackof content. In response to selection of the quick play, the clientdevice and/or content management system can select a content categoryfor the user as well as a content medium to deliver the content. Theuser can continually select the quick play option to cause the clientdevice and/or content management system to select a different contentcategory and content medium.

BRIEF DESCRIPTION OF THE DRAWINGS

The above-recited and other advantages and features of the disclosurewill become apparent by reference to specific embodiments thereof whichare illustrated in the appended drawings. Understanding that thesedrawings depict only exemplary embodiments of the disclosure and are nottherefore to be considered to be limiting of its scope, the principlesherein are described and explained with additional specificity anddetail through the use of the accompanying drawings in which:

FIG. 1 shows an exemplary configuration of devices and a network inaccordance with the invention;

FIG. 2 shows an embodiment of a client device 115 _(i) configured toinitiate quick play mode;

FIG. 3 shows an example method of a content management system initiatingquick play mode;

FIG. 4 shows an example method of a client device initiating quick playmode;

FIGS. 5A and 5B show exemplary possible system embodiments.

DESCRIPTION

Various embodiments of the disclosure are discussed in detail below.While specific implementations are discussed, it should be understoodthat this is done for illustration purposes only. A person skilled inthe relevant art will recognize that other components and configurationsmay be used without parting from the spirit and scope of the disclosure.

The disclosed technology addresses the need in the art for selecting acontent medium in which to deliver content to a user. Content can bedelivered in multiple content mediums. Example content mediums caninclude podcast, album, user created playlist, computer generatedplaylist, radio station, etc.

A client device and/or a content management system can select a contentmedium for a user based on one or more factors, criteria, etc. Forexample, a client device and/or content management system can select acontent medium based on a content category that is to be delivered tothe user. A content category can be any type of categorization of thecontent, such as categorization based on content type, style, artists,era, category, etc. or a combination thereof. Certain content categoriescan be preferably delivered in certain content mediums. As an example, acontent category such as news may be preferably delivered as a podcast.As another example, a content category such as audio books may bepreferably delivered as an entire album, a playlist of audio chapters orother appropriate medium. As another example, a content category such as80's hits may be preferably delivered as a playlist.

In some embodiments, a content management system and/or client devicecan select a content medium for a user based on contextual data gatheredfrom the user. Contextual data can be data describing the user currentstate and/or environment. For example, contextual data can include datasuch as the time of day, geographic location, etc.

Additionally, a content management system and/or client device canselect a content medium for a user based on content use data associatedwith the user and/or a group of users. Content use data can be datagathered from and/or describing user interaction with content. Forexample, content use data can identify the content medium selected by auser to deliver a specified content category, as well identify anycontextual data such as time of day, geographic location, etc. when theuser selected the content medium. The content player can analyze thehistorical content data to select a content medium for a user based on aspecified content category, as well as contextual data describing thecurrent state and/or environment of the user.

In some embodiments, the client device and/or content management systemcan enable a user to select a “quick play” mode to initiate playback ofcontent. In response to selection of the quick play mode, the clientdevice and/or content management system can select a content categoryfor the user as well as a content medium to deliver the content. Theuser can continually select the quick play mode to cause the clientdevice and/or content management system to select a different contentcategory and content medium.

The present disclosure recognizes that the use of such personalinformation data, in the present technology, can be used to the benefitof users. For example, the personal information data can be used todeliver targeted content that is of greater interest to the user.Accordingly, use of such personal information data enables calculatedcontrol of the delivered content. Further, other uses for personalinformation data that benefit the user are also contemplated by thepresent disclosure.

The present disclosure further contemplates that the entitiesresponsible for the collection, analysis, disclosure, transfer, storage,or other use of such personal information data will comply withwell-established privacy policies and/or privacy practices. Inparticular, such entities should implement and consistently use privacypolicies and practices that are generally recognized as meeting orexceeding industry or governmental requirements for maintaining personalinformation data private and secure. For example, personal informationfrom users should be collected for legitimate and reasonable uses of theentity and not shared or sold outside of those legitimate uses. Further,such collection should occur only after receiving the informed consentof the users. Additionally, such entities would take any needed stepsfor safeguarding and securing access to such personal information dataand ensuring that others with access to the personal information dataadhere to their privacy policies and procedures. Further, such entitiescan subject themselves to evaluation by third parties to certify theiradherence to widely accepted privacy policies and practices.

Despite the foregoing, the present disclosure also contemplatesembodiments in which users selectively block the use of, or access to,personal information data. That is, the present disclosure contemplatesthat hardware and/or software elements can be provided to prevent orblock access to such personal information data. For example, in the caseof advertisement delivery services, the present technology can beconfigured to allow users to select to “opt in” or “opt out” ofparticipation in the collection of personal information data duringregistration for services.

Therefore, although the present disclosure broadly covers use ofpersonal information data to implement one or more various disclosedembodiments, the present disclosure also contemplates that the variousembodiments can also be implemented without the need for accessing suchpersonal information data. That is, the various embodiments of thepresent technology are not rendered inoperable due to the lack of all ora portion of such personal information data. For example, content can beselected and delivered to users by inferring preferences based onnon-personal information data or a bare minimum amount of personalinformation, such as the content being requested by the deviceassociated with a user, other non-personal information available to thecontent delivery services, or publically available information.

FIG. 1 illustrates an exemplary system configuration 100, whereinelectronic devices communicate via a network for purposes of exchangingcontent and other data. As illustrated, multiple computing devices canbe connected to communication network 110 and be configured tocommunicate with each other through use of communication network 110.Communication network 110 can be any type of network, including a localarea network (“LAN”), such as an intranet, a wide area network (“WAN”),such as the internet, or any combination thereof. Further, communicationnetwork 110 can be a public network, a private network, or a combinationthereof. Communication network 110 can also be implemented using anynumber of communication links associated with one or more serviceproviders, including one or more wired communication links, one or morewireless communication links, or any combination thereof. Additionally,communication network 110 can be configured to support the transmissionof data formatted using any number of protocols.

Multiple computing devices can be connected to communication network110. A computing device can be any type of general computing devicecapable of network communication with other computing devices. Forexample, a computing device can be a personal computing device such as adesktop or workstation, a business server, or a portable computingdevice, such as a laptop, smart phone, or a tablet PC. A computingdevice can include some or all of the features, components, andperipherals of computing device 500 of FIGS. 5A and 5B.

To facilitate communication with other computing devices, a computingdevice can also include a communication interface configured to receivea communication, such as a request, data, etc., from another computingdevice in network communication with the computing device and pass thecommunication along to an appropriate module running on the computingdevice. The communication interface can also be configured to send acommunication to another computing device in network communication withthe computing device.

In system 100, a user can interact with content management system 105through client devices 115 ₁, 115 ₂, . . . , 115 _(n) (collectively“115”) connected to communication network 110 by direct and/or indirectcommunication. Content management system 105 can support connectionsfrom a variety of different types of client devices 115, such as desktopcomputers; mobile computers; mobile communications devices (e.g. mobilephones, smart phones, tablets, etc.); smart televisions; set-top boxes;and/or any other network enabled computing devices. Client devices 115can be of varying type, capabilities, operating systems, etc.Furthermore, content management system 105 can concurrently acceptconnections from and interact with multiple client devices 115.

A user can interact with content management system 105 via a client-sideapplication installed on client device 115 _(i). In some embodiments,the client-side application can include a content management systemspecific component. For example, the component can be a stand-aloneapplication, one or more application plug-ins, and/or a browserextension. However, the user can also interact with content managementsystem 105 via a third-party application, such as a web browser, thatresides on client device 115 _(i) and is configured to communicate withcontent management system 105. In either case, the client-sideapplication can present a user interface (UI) for the user to interactwith content management system 105. For example, the user can interactwith content management system 105 via a client-side applicationintegrated with the file system or via a webpage displayed using a webbrowser application.

Content management system 105 can be configured to manage content itemsfor multiple user accounts. For example, content management system 105can allow users to purchase, store and access content items.Furthermore, content management system 105 can make it possible for auser to access the content items from multiple client devices 115.Accessing a content item can include receiving metadata describing thecontent item, streaming the content item from content management system105 and/or downloading the content item to one of client devices 115.

To facilitate the various content management services, a user can createa user account with content management system 105. The accountinformation for each created user account can be maintained in useraccount storage 150. User account storage 150 can store profileinformation for each user account, including a unique account identifieridentifying the user account, personal information, username, password,email address, home address, credit card information, bankinginformation, etc. User account storage 150 can also include accountmanagement information, such as content storage locations, securitysettings, personal configuration settings, client devices authorized toaccess the user account, etc.

A user account can be used to purchase, manage and store content items,such as digital data, documents, text files, audio files, video files,etc. For example, content management system 105 can provide an onlinecontent retailer where users can purchase a variety of content items.Further, in some embodiments, a user can upload content items from oneof client devices 115 to content management system 105. The purchasedand uploaded content items can be assigned to the user's account andthen accessed by the user from any of client devices 115. For example, acontent item identifier identifying each content item assigned to a useraccount can be stored in user account storage 150 and associated withthe corresponding user account. The content item identifier can be usedto identify the content item as well as the location of the contentitem.

The content items can be stored in content storage 160. Content storage160 can be a storage device, multiple storage devices, or a server.Alternatively, content storage 160 can be a cloud storage provider ornetwork storage accessible via one or more communications networks.Content management system 105 can hide the complexity and detailsregarding storage of the content items from client devices 115 such thatthe location of the content items stored by content management system105 is not known by client devices 115. Content management system 105can store the content items in a network accessible storage (SAN)device, in a redundant array of inexpensive disks (RAID), etc. Contentstorage 160 can store content items using one or more partition types,such as FAT, FAT32, NTFS, EXT2, EXT3, EXT4, ReiserFS, BTRFS, and soforth.

Content storage 160 can also store metadata describing content items,content item types, and the relationship of content items to varioususer accounts. For example, the metadata can describe the content items,such as identify an author, artist, genre, content category, releasedate, album, title, image, etc., associated with the respective contentitem. The metadata for a content item can be stored as part of thecontent item or can be stored separately. In one variation, each contentitem stored in content storage 160 can be assigned a system-wide uniqueidentifier.

Content management system 105 can include content management module 120configured to manage and access each user account and the content itemsassigned to the user accounts. For example, content management module120 can be configured to communicate with user account storage 150 andcontent storage 160 to adjust privileges with respect to content itemsand otherwise manage content items.

Upon a user logging into their user account from one of client devices115, content management module 120 can access the account informationassociated with the user account to identify the content items assignedto the user account, as well as account configuration data dictatingpresentation of the content items. Content management module 120 canthen present and/or provide the content items to the user according tothe account configuration data. For example, content management module120 can access a user account to identify the content item identifiersassigned to the user account. The content item identifier can then beused to identify and locate the content items assigned to the useraccount, which can be presented according to the account configurationdata.

Presenting the content items can include transmitting metadatadescribing the content items to client device 115 _(i) that was used toaccess the user account. Client device 115 _(i) can then use thereceived metadata to present the content items that the user account canaccess. For example, client device 115 _(i) can present informationidentifying the content items available to the user account in a contentitem library. This can include presenting the title of the contentitems, images such as an album or book cover, description of the contentitem, etc.

Content management system 105 can further enable users to create andplay playlists. A playlist can be made up of a set of content itemsordered sequentially to be played in the specified order. For example, aplaylist can include multiple songs selected by a user to be played in aspecified sequential order such that upon playback of a first song inthe playlist completing, playback of the next song ordered in theplaylist begins. Playlists can also be shuffled or dynamically evaluatedbased on selected criteria.

A playlist can be comprised of any type or combination of types ofcontent items, such as songs, movies, television shows, videos, books,audio files, etc. For example, a playlist can include content items of asingle type, such as a playlist including only songs. Alternatively, aplaylist can include content items of multiple types, such as a playlistincluding songs and videos.

Content management system 105 can include playlist storage 170configured to maintain multiple playlist records. Each playlist recordcan correspond to a single playlist and include data defining theplaylist. For example, a playlist record can include a list of contentitem identifiers that identify the content items included in theplaylist. A playlist record can also identify a sequential order for thecontent items in the playlist. For example, a playlist record can be anarray, linked list, or other data object which lists or maintains thecontent item identifiers in the sequential order in which theircorresponding content items are ordered in the playlist.

In addition to enabling a user to create a playlist, content managementsystem 105 can also maintain curated playlists. A curated playlist canbe a playlist created by a person or entity, such as a music expert,editor, music fan, celebrity, company, algorithm etc. Content managementsystem 105 can allow users to access a listing of curated playlist andselect to play the curated playlists.

Content management system 105 can further enable a user to initiate a“quick play” mode. Quick play mode can result in content items beingplayed for the user without the user providing any additional inputregarding which content items, albums, playlists, etc., the user wouldlike played. For example, a user that does not want to take the time tonavigate through their entire content library to select a content mediumcan initiate quick play mode to be presented with content likely toappeal to the user. As a second example, a user that does not want tonavigate through their entire content library to select content items orcreate a playlist can simply initiate quick play mode to be presentedwith content (e.g., listening to, watching, reading, etc., content).

Content management system 105 can include quick play module 130configured to initiate quick play mode. For example, quick play module130 can be configured to receive a quick play mode request from a clientdevice 115 _(i) indicating that a user of the client device 115 _(i)would like to initiate a quick play mode. In response, quick play module130 can select and play content items for the user. For example, a usercan be presented with a user interface element, such as a button, thatthe user can actuate to initiate quick play mode. Actuation of the userinterface element can cause the user's client deice 115 _(i) to transmita quick play mode request to content management system 105.

Quick play module 130 can select a content category to be played for theuser as well as a content medium to deliver the content. In someembodiments, quick play module 130 can select a content category for auser based on user preference data associated with the user. Forexample, quick play module 130 can communicate with user account storage150 to access the user's account and gather user preference data of theuser.

The user preference data can indicate the user's preferences regardingcontent. For example, user preference data can include user providedpreference data indicating the user's likes and dislikes associated withcontent, such as user selections of genres, content categories, artists,albums, content items, etc., that the user likes or dislikes. Further,user preference data can include user feedback provided by a user, suchas a user rating, like or dislike, etc., provided by the user associatedwith a content item or grouping of content items.

User preference data can further include content use data describing theuser's interaction with content. For example, content use data caninclude a log of the content items the user has selected to play, suchas songs, albums, artist that the user has selected to listen to, aswell as the content medium the user selected to deliver the content,such as podcast, playlist, album, curated playlist, etc. The content usedata can further include contextual data describing the user's stateand/or environment when the user selected the content items. Forexample, the contextual data can include the time of day, day of year,geographic location of the user, type of client device, networkconnection, etc., when the user played the content items.

Quick play module 130 can analyze the user preference data to a select acontent category for the requesting user. For example, quick play module130 can identify a set of content categories that the user likes andthen select a content category from the set of content categories. Quickplay module 130 can select a content category from the set of contentcategories in any known order, such as at random, alternating order,etc.

Alternatively, in some embodiments, quick play module 130 can select acontent category for the user based on contextual data describing theuser's current state and/or environment. Quick play module 130 cangather contextual data from a client device 115 _(i), the user'sprofile, etc. For example, a client device 115 _(i) can transmitcontextual data to content management system 105, such as geographiclocation data, network connection data, data describing the clientdevice 115 _(i), time, date, etc. Further, quick play module 130 cangather contextual data from the user's account, such as data describingthe user's address, client devices, content assigned to the user'saccount, such as movies, applications, music, calendar, social networks,biometric watch data, etc.

In some embodiments, quick play module 130 can select a content categorybased on the time of day or time of year. For instance, if a userselects to initiate quick play mode late at night, quick play module 130may select a content category that is calming and well suited for aperson ready to go to bed. As another example, if a user selects toinitiate quick play mode during December, quick play module 130 canselect a content category that has a holiday or Christmas theme, such asChristmas music, movies, etc.

In some embodiments, quick play module 130 can select a content categoryfor a user based on the geographic location of the user. For example, ifa user initiates quick play mode while in a foreign country, quick playmodule 130 can select a content category associated with the country,such as regional music, movies, etc. As another example, if a userinitiates quick play mode while at a gym, quick play module 130 canselect a content category that is energizing, motivational and/orupbeat, such as high energy music.

In some embodiments quick play module 130 can select a content categorythat the user has selected in the past under similar or the samecontext. As an example, if the user initiates quick play mode in themorning, quick play module 130 can analyze the user preference data todetermine what content categories the user has selected in the past inthe morning and select one of the determined content categories. Forinstance, quick play module 130 can select the content category that theuser has most commonly selected in the morning.

In some embodiments, quick play module 130 can select a content categoryfor a user based on user preference data gathered from a plurality ofusers. To accomplish this, quick play module 130 can communicate withcontent storage 160 to gather and analyze user preferences data from aplurality of users. For example, quick play module 130 can gather userpreference data from all users, a subset of users, a subset of usersthat are similar to the user, etc. Quick play module 130 can analyze thegathered user preference data to determine a content category commonlyselected by similar user, commonly selected under similar or the samecontext, etc.

In some embodiments, quick play module 130 can select a content categorybased on content items that are available to the requesting user. Forexample, quick play module 130 can identify a set of candidate contentitems that the requesting user is authorized to access. This can includecontent items assigned to the user's account as well as content itemsthat are not assigned to the user's account but may be accessed by theusers account. For example, certain content items can be designates asbeing free of restriction and can be accessed by all users, as anotherexample, certain content items may be free of restriction for a limitedtime, for example, while the content item is included as part of acurated playlist, radio station, etc.

Quick play module 130 can analyze metadata associated with the set ofcandidate content items to determine the content items from the variouscontent categories. Quick play module 130 can then select a contentcategory based on the available candidate content items in each contentcategory. For example, quick play module 130 can select the contentcategory with the greatest number of content items. As another example,quick play module 130 can select from the content categories that haveat least a threshold number of candidate content items. Requiring that athreshold number of candidate content items be available can ensure thatthere will be sufficient content items available for the selectedcontent category.

In some embodiments, quick play module 130 can select a content categorybased on the content mediums available for the content categories. Forexample, quick play module 130 can identify, based on the candidatecontent items available for each content category, the number ofdifferent content mediums available for each content category. This caninclude determining the number of playlists, albums, curated playlists,online radio stations, podcasts, etc., that are available for thecontent category.

Quick play module 130 can then select a content category based on theavailable content mediums. For example, quick play module 130 can selectthe content category with the most available content mediums. As anotherexample, quick play module 130 can identify the content categories thathave a predetermined threshold number of available content mediums andselect a content category from one of the identified content categories.

In some embodiments, quick play module 130 can identify qualifiedcontent mediums for a content category and then determined the contentcategory based on the qualified content mediums. A qualified contentmedium can be a delivery medium that has a number of available contentitems that meets or exceeds a predetermined threshold number of contentitems. Content methods that do not meet the threshold number of contentitems can be determined to be unqualified because there are not asufficient number of the content items available.

Quick play module 130 can select a content category based on the numberof qualified content mediums available to the genre. This can includeselecting the content category with the most qualified content mediums,selecting a genre from a set of content categories that have apredetermined threshold number of qualified content mediums, etc. Quickplay module 130 can select a content category based on any one or moreof the factors listed above (e.g., available content items, contextualdata, user preference data, available delivery mediums, etc.).

In some embodiments, quick play module 130 can rank and/or calculate ascore for the content categories based on one or more of the factors andthen select a content category based on the ranking. Quick play module130 can calculate a score for the content categories in any way known inthe art. For example, quick play module 130 can apply weights to thedifferent factors to indicate the perceived importance of the factor andthen calculate a score for each content category based on the weightedfactors. In some embodiments, weights can be assigned to the factorsbased on perceived relevance or accuracy of the associated data. Forexample, the weight assigned to user preference data can be reduced asthe data becomes older.

Quick play module 130 can select a content category based on thecalculated score or ranking. For example, quick play module can selectthe content category with the highest score or ranking, a contentcategory that has a score or ranking that meets or exceeds apredetermined threshold score or ranking, etc.

In addition to selecting a content category for the user, quick playmodule 130 can also select a content medium in which to deliver thecontent to the user. For example, quick play module 130 can select todeliver content in content mediums such as an album, playlist, podcast,curated playlist, video, radio etc.

In some embodiments, quick play module 130 can select a content mediumbased on the selected content category. For example, certain contentcategories may be associated with one or more preferred content mediumsfor delivery and quick play module 130 can be configured to select oneof the preferred content mediums. As an example, content categories suchas 80's music and Christmas music may be associated with a preferredcontent medium such as a playlist because users commonly do not want tolisten to an entire album from a single artist, but rather prefer anumber of hits from the content category. As another example, contentcategories such as audio books or live concert recordings may beassociated with a preferred content medium such as album because usersmay prefer to listen to albums from these content categories in theirentirety. As another example, content categories such as news and sportsmay be associated with a preferred content medium such as podcastbecause users may prefer content from these content categories toreflect current events.

Alternatively, in some embodiments, quick play module 130 can select acontent category based on a selected content medium. For example, a usermay select a specific content medium or quick play module 130 may firstselect a content medium and then quick play module 130 may select acontent category based on the selected content medium.

In some embodiments, quick play module 130 can select a content mediumbased on contextual data such as, time of day, day of year, geographiclocation, client device type, network connection, etc. For example, if auser has a low bandwidth connection, quick play module 130 can select acontent medium such as albums to play content items currently availableon the user's device and thereby reduce network usage. As anotherexample, if the user has a high bandwidth connection, quick play module130 can select a content medium such as podcast or radio, becausestreaming data over the network may not be as much of an issue.

In some embodiments, quick play module 130 can select a content mediumbased on user preference data of the user. For example, quick playmodule 130 can select a content medium for a selected content categorybased on the user's previous history with the specified contentcategory. For instance, quick play module 130 can select a contentmedium that the user has selected in the past to deliver the specifiedcontent category. In some embodiments, quick play module 130 can rankthe content mediums the user has selected in the past for a specifiedcontent category and select a content medium based on the ranking. Forexample, quick play module 130 can rank the content mediums based on thenumber of times the user has selected the content medium, how recentlythe user selected the content medium, how long the user played thecontent in the content medium, etc. Quick play module 130 can selectthen select a content medium based on the ranking. For example, quickplay module 130 can select the content medium with the highest ranking,select from a set of the highest ranked content mediums, select acontent medium that has met a threshold ranking, etc.

In some embodiments, quick play module 130 can select a content mediumbased on how familiar the user is with the selected content category.For example, if a user has rarely played content from the selectedcontent category and/or has limited content from the content categoryassigned to their user account, quick play module 130 can select acontent medium such as a curated playlist or radio to introduce the userto new content from the content category. Conversely, if the usercommonly plays content from the selected content category and/or has alarge amount of content from the content category assigned to the useraccount, quick play module 130 can select a content medium such as afull album or user generated playlist to play the user with the contentin a content medium the user is familiar with.

In some embodiments, quick play module 130 can select a content mediumbased on user preferences data and contextual data. For example, quickplay module 130 can select a content medium which the user has selectedin the past when in a similar or the same context. Quick play module 130can rank the content mediums based on the contextual data and select acontent medium based on the ranking.

In some embodiments, quick play module 130 can select a content mediumbased on user specified preferences. For example, content managementsystem 105 can enable a user to select preferences regarding the contentmediums the user prefers based on content category. The user selectedpreferences can be stored in the user's account and quick play module130 can access the users account to select a content medium based on theuser's selections.

In some embodiments, quick play module 130 can select a content mediumfor a user based on user preference data gathered from a plurality ofusers. To accomplish this, quick play module 130 can communicate withcontent storage 160 to gather and analyze user preferences data from aplurality of users. This can include gathering and analyzing content usedata describing user interactions with content, including the contentcategories selected by users, the content mediums selected by the user,as well as any associated contextual data. Quick play module 130 cangather user preference data from all users, a subset of users, a subsetof users that are similar to the user, etc. Quick play module 130 cananalyze the gathered user preference data to determine a content mediumcommonly selected for the content category, commonly selected undersimilar or the same context, etc.

In some embodiments, quick play module 130 can select a content mediumbased on the number of content items available in the content medium.For example, quick play module 130 can select a content medium that hasthe most available content items or a content medium that has at least athreshold number of content items available.

Quick play module 130 can select a content medium based on any one ormore of the factors listed above. In some embodiments, quick play module130 can rank and/or calculate a score for the content mediums based onone or more of the factors and then select a content medium based on theranking. Quick play module 130 can calculate a score for the contentmediums in any way known in the art. For example, quick play module 130can apply weights to the different factors to indicate the perceivedimportance of the factor and then calculate a score for each contentmedium based on the weighted factors. In some embodiments, weights canbe assigned to the factors based on perceived relevance or accuracy ofthe associated data. For example, the weight assigned to user preferencedata can be reduced as the data becomes older.

Quick play module 130 can select a content medium based on thecalculated score or ranking. For example, quick play module can selectthe content medium with the highest score or ranking, a content mediumthat has a score or ranking that meets or exceeds a predeterminedthreshold score or ranking, etc.

After selecting a content category and content medium, quick play module130 can deliver content items from the selected content category to therequesting client device 115 _(i). The content items can be delivered inthe selected content medium. For example, if the selected content mediumis an album, quick play module 130 can transmit, download, stream and/orotherwise provide the content items from the album to the client device115 _(i). As another example, if the selected content medium is aplaylist quick play module 130 can transmit, download, stream and/orotherwise provide the content items from the playlist to the clientdevice 115 _(i). In some embodiments, some of the content items can bestored locally on the client device 115 _(i) and quick play module 130can transmit a command and/or instruction to the client device 115 _(i)to access and play the content item from local memory.

FIG. 2 shows an embodiment of a client device 115 _(i) configured toinitiate quick play mode. FIG. 2 will be described in view of the systemshown in FIG. 1 .

As shown, client device 115 _(i) can include client side application205. Client side application 205 can be configured to communicate withcontent management system 105 and provide a user of client device 115_(i) with functionality offered by content management system 105. Thiscan include enabling a user to login to the user's account with contentmanagement system 105, view and access content items assigned to theuser's account, create playlists, view and access curated playlist, setuser preferences, etc. For example, client side application 205 canpresent a user with a content management interface where the user canselect various options, view their content library, select to playcontent items, etc.

Client device 115 _(i) further includes data storage 250. Data storage250 can be configured to store any type of data. For example, datastorage 250 can store content items, playlist records, configurationdata, user preference data, etc. Client side application 205 can presentand enable a user to access content item from data storage 250 as wellas content items maintained by content management system 105.

Client side application 205 can further include quick play module 210configured to enable a user to initiate quick play mode. For example,quick play module 210 can present a user with a user interface element,such as button, which the user can actuate to initiate quick play mode.In response to a user actuating the user interface element, quick playmodule 210 can transmit a quick play mode request to content managementsystem 105.

In some embodiments, quick play module 210 can gather contextual dataand transmit the contextual data as part of the quick play mode request.For example, quick play module 210 can gather geographic locationinformation describing the geographic location of client device 115 _(i)from a global positioning system (GPS) of client device 115 _(i), andinclude the geographic location information in the quick play moderequest. As another example, quick play module 210 can gather networkingdata such as the type of network client device 115 _(i) is connected toand include the networking data in the quick play mode request. Asanother example, quick play module 210 can gather device data describingclient device 115 _(i), including capabilities, components, operatingsystem, installed applications, battery life remaining, etc., andprovide the device data to content management system 105 along with thequick pay mode request.

In some embodiments, quick play module 210 can initiate quick play modewithout communicating with content management system 105. This can beuseful when client device 115 _(i) is not in network connection withcontent management system 105. For example, quick play module 210 can beconfigured to select a content category and content medium for a user.For example, quick play module 210 can select a content category andcontent medium based on locally stored data in data storage 250, such asuser preference data, content user data, etc. Quick play module 210 canthen play locally stored content items stored in data storage 250.

In some embodiments, content management system 105 can transmit data toclient device 115 _(i) that can be used to initiate quick play mode. Forexample, content management system 105 can transmit data indicatingrankings of content categories, content mediums best suited for thecontent categories, etc., to client device 115 _(i). The data can bestored in data storage 250 and used by quick play module 210 to initiatequick play mode for a user.

FIG. 3 shows an example method of a content management system initiatingquick play mode. The method shown in FIG. 3 is described in view of thesystems shown in FIG. 1 and FIG. 2 . Although specific steps are shownin FIG. 3 , in other embodiments the method may have more or less steps.Further, the order in which the steps are performed is just one possibleembodiment and is not meant to be limiting. The method may be performedin a variety of differing orders, including one or more steps beingperformed simultaneously, and/or including more or less steps than thoseshown in FIG. 3 .

At block 305, the content management system 105 receives a quick playmode request from a client device 115 _(i). A quick play mode requestcan be a request indicating that a user of the client device 115 _(i)would like to initiate quick play mode. In some embodiments, the quickplay mode request can include contextual data describing the user'scurrent state and/or environment. For example, the quick play moderequest can include contextual data such the user's geographic location,network connection type, device data, etc.

At block 310, the content management system 105 can select a contentcategory for the user. The content management system 105 can select acontent category for the user in numerous ways. For example, a quickplay module 130 can analyze user preference data associated with theuser to identify content categories that the user likes and dislikes andthen select a content category that the user likes. Additionally, thequick play module 130 can select a content category for the user basedon contextual data received from the user. For example, the quick playmodule 130 can identify content categories that the user, group ofusers, etc., selected in similar or the same context and select one ofthe identified content categories for the user.

At block 315, the content management system 105 can select a contentmedium to deliver the content to the user. In some embodiments, thecontent management system 105 can select the content medium based on theselected content category. For example, specified content categories canbe associated with one or more preferred content mediums. The quick playmodule 130 can identify the preferred content mediums for the contentcategory and select one of the preferred content mediums for the user.As another example, the quick play module 130 can select a contentmedium based on contextual data received from the user. For example, thequick play module 130 can identify content mediums that the user, groupof users, etc., selected in similar or the same context and select oneof the identified content mediums for the user.

Although the method shown in FIG. 3 describes the content managementsystem 105 selecting a content category prior to selecting a contentmedium, in some embodiments, the content management system 105 canselect the content medium first and then select a content category. Inthis type of embodiments, the content management system 105 can selectthe content category based on the selected content medium. For example,the content management system 105 can select a content category that iswell suited for the content medium, selected by the user for thespecific content medium, etc.

At block 320, the content management system 105 can deliver contentitems from the content category in the selected content medium. Forexample, the content management system 105 can stream the content itemsto the requesting client device 115 _(i). Alternatively, the contentmanagement system 105 can transmit an instruction to the client device115 _(i) to play a content item stored locally on a data storage 250 ofthe client device 115 _(i).

FIG. 4 shows an example method of a client device initiating quick playmode. The method shown in FIG. 4 is described in view of the systemsshown in FIG. 1 and FIG. 2 . Although specific steps are shown in FIG. 4, in other embodiments the method may have more or less steps. Further,the order in which the steps are performed is just one possibleembodiment and is not meant to be limiting. The method may be performedin a variety of differing orders, including one or more steps beingperformed simultaneously, and/or including more or less steps than thoseshown in FIG. 4 .

At block 405, the client device 115 _(i) receives an indication that auser would like to initiate quick play mode. This indication can bereceived as a result of the user selecting a user interface element toinitiate quick play mode. As another example, the indication can bereceived as a result of a user shaking the client device 115 _(i). Forexample, if quick play mode is already initiated, the client device 115_(i) can enable the user to shake the client device 115 _(i) toreinitiate quick play mode, causing a new content category and contentmedium to be selected for the user.

As another example, the indication can be received as a result of a useractuating a physical button or user interface element on a computingdevice in network connection with the client device 115 _(i). Forexample, a user may have their client device 115 _(i) paired to theircar stereo and the user can select a physical button on the steeringwheel to cause the indication that the user would like to initiate quickplay mode.

As another example, the indication can be received as a result of a userselecting to play content items without having any content queued orselected. For example, if a user selects a “play” button withoutselecting an album, artist, etc., the selection can be the indicationthat the user would like to initiate quick play mode.

As another example, the indication can be receives as a result of a userproviding negative feedback to content items played during quick playmode. For example, a user can provide negative feedback by selecting adislike button for a content item or skipping a content item. The clientdevice 115 _(i) can be configured such that, if a predeterminedthreshold of negative feedback is received, for example within apredetermined amount of time or total, the client device 115 _(i) willdetermine that the user does not like the current content category anddelivery method and select a new content and delivery method for theuser.

At block 410, the client device 115 _(i) can gather contextual datadescribing the current state or environment of the user. This caninclude geographic location data, network data, device, data, etc. Forexample, a quick play module 210 can gather geographic location datafrom a GPS component of the client device 115 _(i). As another example,quick play module 210 can gather network data identifying the type ofnetwork that the client device 115 _(i) is connected to.

At block 415, the client device 115 _(i) can transmit a quick play moderequest and the contextual data to the content management system 105.The quick play mode request can be a request to initiate quick play modeon the client device 115 _(i). The content management system 105 can usethe contextual data to select a content category and content medium forthe user.

At block 420, the client device 115 _(i) can play content items as partof quick play mode. For example, the client device 115 _(i) can receiveand play content items streamed from the content management system 105.Alternatively, the client device 115 _(i) can receive an instructionfrom the content management system 105 to access and play a content itemstored locally by the client device 115 _(i).

FIG. 5A, and FIG. 5B show exemplary possible system embodiments. Themore appropriate embodiment will be apparent to those of ordinary skillin the art when practicing the present technology. Persons of ordinaryskill in the art will also readily appreciate that other systemembodiments are possible.

FIG. 5A illustrates a conventional system bus computing systemarchitecture 500 wherein the components of the system are in electricalcommunication with each other using a bus 505. Exemplary system 500includes a processing unit (CPU or processor) 510 and a system bus 505that couples various system components including the system memory 515,such as read only memory (ROM) 520 and random access memory (RAM) 525,to the processor 510. The system 500 can include a cache of high-speedmemory connected directly with, in close proximity to, or integrated aspart of the processor 510. The system 500 can copy data from the memory515 and/or the storage device 530 to the cache 512 for quick access bythe processor 510. In this way, the cache can provide a performanceboost that avoids processor 510 delays while waiting for data. These andother modules can control or be configured to control the processor 510to perform various actions. Other system memory 515 may be available foruse as well. The memory 515 can include multiple different types ofmemory with different performance characteristics. The processor 510 caninclude any general purpose processor and a hardware module or softwaremodule, such as module 1 532, module 2 534, and module 3 536 stored instorage device 530, configured to control the processor 510 as well as aspecial-purpose processor where software instructions are incorporatedinto the actual processor design. The processor 510 may essentially be acompletely self-contained computing system, containing multiple cores orprocessors, a bus, memory controller, cache, etc. A multi-core processormay be symmetric or asymmetric.

To enable user interaction with the computing device 500, an inputdevice 545 can represent any number of input mechanisms, such as amicrophone for speech, a touch-sensitive screen for gesture or graphicalinput, keyboard, mouse, motion input, speech and so forth. An outputdevice 535 can also be one or more of a number of output mechanismsknown to those of skill in the art. In some instances, multimodalsystems can enable a user to provide multiple types of input tocommunicate with the computing device 500. The communications interface540 can generally govern and manage the user input and system output.There is no restriction on operating on any particular hardwarearrangement and therefore the basic features here may easily besubstituted for improved hardware or firmware arrangements as they aredeveloped.

Storage device 530 is a non-volatile memory and can be a hard disk orother types of computer readable media which can store data that areaccessible by a computer, such as magnetic cassettes, flash memorycards, solid state memory devices, digital versatile disks, cartridges,random access memories (RAMs) 525, read only memory (ROM) 520, andhybrids thereof.

The storage device 530 can include software modules 532, 534, 536 forcontrolling the processor 510. Other hardware or software modules arecontemplated. The storage device 530 can be connected to the system bus505. In one aspect, a hardware module that performs a particularfunction can include the software component stored in acomputer-readable medium in connection with the necessary hardwarecomponents, such as the processor 510, bus 505, display 535, and soforth, to carry out the function.

FIG. 5B illustrates a computer system 550 having a chipset architecturethat can be used in executing the described method and generating anddisplaying a graphical user interface (GUI). Computer system 550 is anexample of computer hardware, software, and firmware that can be used toimplement the disclosed technology. System 550 can include a processor555, representative of any number of physically and/or logicallydistinct resources capable of executing software, firmware, and hardwareconfigured to perform identified computations. Processor 555 cancommunicate with a chipset 560 that can control input to and output fromprocessor 555. In this example, chipset 560 outputs information tooutput 565, such as a display, and can read and write information tostorage device 570, which can include magnetic media, and solid statemedia, for example. Chipset 560 can also read data from and write datato RAM 575. A bridge 580 for interfacing with a variety of userinterface components 585 can be provided for interfacing with chipset560. Such user interface components 585 can include a keyboard, amicrophone, touch detection and processing circuitry, a pointing device,such as a mouse, and so on. In general, inputs to system 550 can comefrom any of a variety of sources, machine generated and/or humangenerated.

Chipset 560 can also interface with one or more communication interfaces590 that can have different physical interfaces. Such communicationinterfaces can include interfaces for wired and wireless local areanetworks, for broadband wireless networks, as well as personal areanetworks. Some applications of the methods for generating, displaying,and using the GUI disclosed herein can include receiving ordereddatasets over the physical interface or be generated by the machineitself by processor 555 analyzing data stored in storage 570 or 575.Further, the machine can receive inputs from a user via user interfacecomponents 585 and execute appropriate functions, such as browsingfunctions by interpreting these inputs using processor 555.

It can be appreciated that exemplary systems 500 and 550 can have morethan one processor 510 or be part of a group or cluster of computingdevices networked together to provide greater processing capability.

For clarity of explanation, in some instances the present technology maybe presented as including individual functional blocks includingfunctional blocks comprising devices, device components, steps orroutines in a method embodied in software, or combinations of hardwareand software.

In some embodiments the computer-readable storage devices, mediums, andmemories can include a cable or wireless signal containing a bit streamand the like. However, when mentioned, non-transitory computer-readablestorage media expressly exclude media such as energy, carrier signals,electromagnetic waves, and signals per se.

Methods according to the above-described examples can be implementedusing computer-executable instructions that are stored or otherwiseavailable from computer readable media. Such instructions can comprise,for example, instructions and data which cause or otherwise configure ageneral purpose computer, special purpose computer, or special purposeprocessing device to perform a certain function or group of functions.Portions of computer resources used can be accessible over a network.The computer executable instructions may be, for example, binaries,intermediate format instructions such as assembly language, firmware, orsource code. Examples of computer-readable media that may be used tostore instructions, information used, and/or information created duringmethods according to described examples include magnetic or opticaldisks, flash memory, USB devices provided with non-volatile memory,networked storage devices, and so on.

Devices implementing methods according to these disclosures can comprisehardware, firmware and/or software, and can take any of a variety ofform factors. Typical examples of such form factors include laptops,smart phones, small form factor personal computers, personal digitalassistants, and so on. Functionality described herein also can beembodied in peripherals or add-in cards. Such functionality can also beimplemented on a circuit board among different chips or differentprocesses executing in a single device, by way of further example.

The instructions, media for conveying such instructions, computingresources for executing them, and other structures for supporting suchcomputing resources are means for providing the functions described inthese disclosures.

Although a variety of examples and other information was used to explainaspects within the scope of the appended claims, no limitation of theclaims should be implied based on particular features or arrangements insuch examples, as one of ordinary skill would be able to use theseexamples to derive a wide variety of implementations. Further andalthough some subject matter may have been described in languagespecific to examples of structural features and/or method steps, it isto be understood that the subject matter defined in the appended claimsis not necessarily limited to these described features or acts. Forexample, such functionality can be distributed differently or performedin components other than those identified herein. Rather, the describedfeatures and steps are disclosed as examples of components of systemsand methods within the scope of the appended claims.

1. (canceled)
 2. A method for delivering content from a content deliveryserver for playback comprising: receiving, from a client device, a firstplay mode request to play, on the client device, one or more unspecifiedcontent items; receiving contextual data describing an environment of auser that is associated with the first play mode request; in response toreceiving the first play mode request: selecting, based on thecontextual data, a first content category of media from a plurality ofavailable content categories; selecting, based on the selected firstcontent category, a first content medium from a plurality of contentmedium types, wherein the first content medium comprises medium formatfor delivering the contents from content categories; determining, afirst content item within the first content category and the firstcontent medium for playback; and delivering the first content item forplayback by the client device from the selected first content medium. 3.The method of claim 2, wherein the first play mode request comprises acontinual quick play mode, and wherein the continual quick play modecauses: selecting a second content category; ranking a plurality ofcontent mediums based at least in part on a number of times the user haspreviously selected the content medium; and selecting a second contentmedium in response to the ranking and delivering a second content itemto the second content medium based on the selected second contentcategory and the selected second content medium.
 4. The method of claim2, wherein content categories are ranked based on a weighted scoreapplied based on the number of times the user has previously selected acontent medium, and wherein the weighted score is adjusted based on howrecently the user previously selected the content medium.
 5. The methodof claim 2, wherein the content medium is selected based on devices theclient device is connected to.
 6. The method of claim 2, whereinselecting the first content medium comprises: determining, based oncontent use data associated with a plurality of users, the plurality ofcontent medium types that were selected by the plurality of users undera same or similar contextual circumstance.
 7. The method of claim 2,wherein the contextual data includes biometric data associated with theuser.
 8. The method of claim 2, wherein the content medium is selectedbased on a client device type and a network bandwidth of the clientdevice.
 9. A system for delivering content for playback comprising: acomputer processor; and a memory containing instructions that, whenexecuted, cause the computer processor to: receive, from a clientdevice, a first play mode request to play, on the client device, one ormore unspecified content items; receive contextual data describing anenvironment of a user that is associated with the first play moderequest; in response to receiving the first play mode request: select,based on the contextual data, a first content category of media from aplurality of available content categories; select, based on the selectedfirst content category, a first content medium from a plurality ofcontent medium types, wherein the first content medium comprises mediumformat for delivering the contents from content categories; determine, afirst content item within the first content category and the firstcontent medium for playback; and deliver the first content item forplayback by the client device from the selected first content medium.10. The system of claim 9, wherein the first play mode request comprisesa continual quick play mode, and wherein the continual quick play moderequests causes the system to: select a second content category; rank aplurality of content mediums based at least in part on a number of timesthe user has previously selected the content medium; and select a secondcontent medium in response to the ranking and deliver a second contentitem to the second content medium based on the selected second contentcategory and the selected second content medium.
 11. The system of claim9, wherein content categories are ranked based on a weighted scoreapplied based on the number of times the user has previously selected acontent medium, and wherein the weighted score is adjusted based on howrecently the user previously selected the content medium.
 12. The systemof claim 9, wherein the content medium is selected based on devices theclient device is connected to.
 13. The system of claim 9, whereinselecting the first content medium comprises: determining, based oncontent use data associated with a plurality of users, the plurality ofcontent medium types that were selected by the plurality of users undera same or similar contextual circumstance.
 14. The system of claim 9,wherein the contextual data includes biometric data associated with theuser.
 15. The system of claim 9, wherein the content medium is selectedbased on a client device type and a network bandwidth of the clientdevice.
 16. A non-transitory computer-readable medium for deliveringcontent for playback containing instructions that, when executed by acomputer processor, cause the computer processor to: receive, from aclient device, a first play mode request to play, on the client device,one or more unspecified content items; receive contextual datadescribing an environment of a user that is associated with the firstplay mode request; in response to receiving the first play mode request:select, based on the contextual data, a first content category of mediafrom a plurality of available content categories; select, based on theselected first content category, a first content medium from a pluralityof content medium types, wherein the first content medium comprisesmedium format for delivering the contents from content categories;determine, a first content item within the first content category andthe first content medium for playback; and deliver the first contentitem for playback by the client device from the selected first contentmedium.
 17. The non-transitory computer-readable medium of claim 16,wherein the first play mode request is a continual quick play mode, andwherein the continual quick play mode causes the computer processor to:select a second content category; rank a plurality of content mediumsbased at least in part on a number of times the user has previouslyselected the content medium; and select a second content medium inresponse to the ranking and deliver a second content item to the secondcontent medium based on the selected second content category and theselected second content medium.
 18. The non-transitory computer-readablemedium of claim 16, wherein content categories are ranked based on aweighted score applied based on the number of times the user haspreviously selected a content medium, and wherein the weighted score isadjusted based on how recently the user previously selected the contentmedium.
 19. The non-transitory computer-readable medium of claim 16,wherein the content medium is selected based on devices the clientdevice is connected to.
 20. The non-transitory computer-readable mediumof claim 16, wherein selecting the first content medium comprises:determining, based on content use data associated with a plurality ofusers, the plurality of content medium types that were selected by theplurality of users under a same or similar contextual circumstance.